kaldevfandomcom-20200216-history
Mainserver Config
NumberOfThreads - (numberOfProcessors) Number of threads running ServerId - (dw_none) Server ID number, purely administrative? MaxUser - 1000 Max connections. AgeLimit - 18 Age for connecting. Map - ".\\Map" Directory containing the maps. DBSvr - "127.0.0.1" DBSvr IP. AuthSvr - "127.0.0.1" AuthSvr IP. MailServer - (char_none) Mail server IP. MailFrom - (char_none) The email to send mail "from" - error mail probably. MailTo - (char_none) Email for MainSvrT to send mail to - error mail probably. Port - 30001 MainSvrT listening port. DBPort - 40001 DBSvrT listening port. AuthPort - 50001 AuthSvrT listening port. ODBC - (char_none) ODBC name. ItemVer - 1 Polishing limit perhaps? Called in CItem::Init. Not sure about this one. Country - 1 Country code for the server. Effects: If country is 1, print to server window when a command (notice, shutdown) is received from AuthSvrT Loads the right portals according to country code (CPortal::OnLoad()) If country is 2, max war size is 24 guilds. Otherwise, 100 guilds. Affects CItem::NewItem() in some way - checks for correct country code? Affects CItem::Init() in some way - checks for country code 2. If true, runs extra code. ItemVer referenced here also. Applies level limit to CItem::CanTrade(). Applies level limit to CItem::CanDrop(). On CItemWeapon::Protect(), run extra code if not country 2. Polishing limit. On CItemDefense::Protect(), run extra code if not country 2. Polishing limit. On CItemQuest::CanMerge(), checks for country 2. If not, always allow stack. If so, check conditions then allow stack. On CGoods::ForcedStorageIn(), checks for country 0. Write an extra byte value to DB if not country 0. If country is 1, print to server window when GM command received from MainSvrT (notice, shutdown). On CMonster::Create(), check for proper country code. On CMonsterTowerBoss::Create(), check for proper country code. On CMonsterGuildWar::Create(), check for proper country code. On CMonsterBigBirdMother::Create(), check for proper country code. On CMonsterSiegeGun::Create(), check for proper country code. On CMonsterSiegeGunBall::Create(), check for proper country code. On CNPC::Create(), check for proper country code. When war declaration packet comes in, check that country is not 1. On CPlayer::_FindStorageItem(), check for country 2. If true, run extra condition. On CPlayer::ChatCommand(), print alert to server window when GM command received if country is 1. On CPlayer::ChatCommand(), allow /guildexp if country is 1. On CPlayer::ChatCommand(), allow /infosys if country is not 1. On CPlayer::ChatCommand(), print alert to server window on /maxuser if country is not 1. On CPlayer::ChatCommand(), allow /shutdown if country is not 1. On CPlayer::ChatCommand(), allow /shutdownoff if country is not 1. On CPlayer::ChatCommand(), allow /location if country is not 1. On CPlayer::ChatCommand(), allow /revertitem if country is not 1. On CPlayer::ChatCommand(), allow /skill if country is not 1. On CPlayer::ChatCommand(), allow /skillredit if country is not 1. On CPlayer::ChatCommand(), allow /nest if country is not 1. On CPlayer::ChatCommand(), allow /queen if country is not 1. Exit CPlayer::ProcessEvent() early if country is 1 - event 4. On CPlayer::ProcessEvent() run extra code for event 7 if country is 1. On CPlayer::IsPCBang(), run extra code if country 0. Net cafe? On 0x4958F0, if country is 1 and pay system (system 2) is active, do extra DB write. Probably character processing (user input in different languages): On 0x4977B0, run a switch for country codes 0, 1, and 2. On 0x4979C0, run a switch for country codes 0, 1, and 2. Language - "LanguageM_kr.txt" Default language map. MailLimitLv - 0 Limit for sending F/L messages probably. Never referenced. Seed - 0 Random seed for packet encryption. Title - (char_none) Title for the server window. Event - (char_none) Event flags. 0 - 0x01 *If system 1 is active, call CPlayer::EventBuff(0) every ten minutes. If system 1 is not active, call CPlayer::EventBuff(0) at 01:00, 12:00, and 20:00. Doubles drops. 1 - 0x02 Give player Golden Coin (649) every 30 minutes while active. 2 - 0x04 Rock, Paper, Scissors event. 3 - 0x08 Referenced at 0x464B6C If active: Do comparison of player level with 5 If greater than or equal, compare playerAddr + 0x1C0 and 439941 If greater than or equal, do a write Else do a different write 4 - 0x10 Referenced at 0x464E35 If country 1, return. If event 4 inactive, return. Call CChar::IsBState() Do stuff based on result. 5 - 0x20 Unreferenced. 6 - 0x40 Snow event. 7 - 0x80 Thanksgiving Event Referenced at 0x464F3C - needs decompilation If country is not 1, return. If event 7 is active, continue. If player has item 653, continue - else send packet about it? Check BState (0x100, 0) Removal of item 653 involved. 8 - 0x100 Annual Event Referenced at 0x456168 CAuthSocket::Write 0x10 CDBSocket::Write 0x4D Referenced at 0x4640F9 If active: Toggles event on DBSvr perhaps? Referenced at 0x46D340 (CPlayer::EventProcessNPC) If inactive, return. Checks player state - if incorrect, write and return (1?). Gives bound items based on player state (650, 600, 150, NA) -One day exp stone -Stone of chance -One day wealth stone -One day lucky stone Referenced at 0x495E50 (CSocket::OnDeletePlayer) Does an extra write to AuthSocket if active. System - (char_none) System flags: 0 - 0x01 - Assassin system If flipped, sends DBSvr byte 0x4B437D, packet ID 38 Activates assassin list Enables assassin system 1 - 0x02 - Local test server (Cosmo) If system 8 is active, enables hourly wars Declaration :05 - :15 War :16 - :50 Makes /get (CreateCheatItem, usually 0x08 8) unbound. Makes /revertitem (CreateOwnItem, usually 0x80 128) unbound. Makes bound (0x08 or 0x80) items sellable Makes bound (0x08 or 0x80) items tradeable Makes bound (0x08 or 0x80) items droppable *When inactive, changes behavior of siege cannons. Decreases 30s wait time to 5s for siege cannons. Allows /get (CreateCheatItem) to make geons (31) Allows /revertitem (CreateOwnItem) to make geons (31) Allows /storage (CreateItem - in storage) to make geons (31) Allows /itemattribute (CharmingCheatItem) to work on non cheat (0x08) items *Greatly increases time from event buffs? 2 - 0x04 - Pay System Called from CDBSocket::Process If country is 1 and this system is on, processes (writes?) a smaller packet (bd) Otherwise, process a larger packet. 3 - 0x08 - NetMarble AuthSocket Activation Reference at 0x494FA8 4 - 0x10 - (reserved) Unused. 5 - 0x20 - (reserved) Unused. 6 - 0x40 - Friend System Allows friend functions to run. 7 - 0x80 - Billing System Unreferenced. 8 - 0x100 - Test Server Activates extra GM commands: If country code 1: /guildexp If country code not 1: /infosys /shutdown /shutdownoff /location /revertitem /skill /skillredit No country condition: /luxury Enables nightly wars Declaration 17:00 - 17:30 War 18:00 - 19:00 Makes guild exp requirements 0, 1, 2, and 3 Removes guild creation geon cost Makes guild creation CP requirement 1 Makes guild CP requirements 0, 1, 2, and 3 *Removes alliance time restriction (Ask) *Removes alliance time restriction (Answer) *Sets war end time to 22:00 (for purposes of player actions, not pvp?) Removes war declaration fee *Multiplies drop likelihood by 5 *Somehow further manipulates drops (CMonster::DropItem) *Doubles experience on CPlayer::UpdateProperty 9 - 0x200 - Guild War System Unreferenced. 10 - 0x400 - Mail System Allows use of F/L Mail System 11 - 0x800 - Gambling System (Dice? Rock, Paper, Scissors?) Unknown. 12 - 0x1000 - Castle Siege Cannons. Allows use of cannons at castle siege. 13 - 0x2000 - Hackshield System Runs AntiCPSvr at startup Finalizes AntiCPSvr at shutdown *More hackshield stuff? 14 - 0x4000 - Packet Encryption *Runs packet encryption (InitCrypt)? 15 - 0x8000 16 - 0x10000